package collcetion;

import java.util.ArrayList;
import java.util.Collection;

public class CollectionDemo2 {
    public static void main(String[] args) {
        Collection<String> collection = new ArrayList<>();
        // boolean add(E e)            添加元素
        collection.add("aaa");
        collection.add("bbb");
        collection.add("ccc");
        collection.add("dddd");
        //System.out.println(collection);

        // boolean remove(Object o)    从集合中移除指定的元素
         removeMethod(collection);

        // boolean removeIf(Object o)  根据条件进行删除
         removeIfMethod(collection);

        // void clear()                清空集合
         clearMethod(collection);

        // boolean contains(object o)  判断集合中是否存在指定的元素
         containsMethod(collection);

        // boolean isEmpty()           判断集合是否为空
         isEmptyMethod(collection);

        // int size()                  集合的长度，也就是集合中元素的个数
        sizeMethod(collection);


    }

    private static void sizeMethod(Collection<String> collection) {
        // int size()                  集合的长度，也就是集合中元素的个数
        System.out.println(collection.size());
    }

    private static void isEmptyMethod(Collection<String> collection) {
        // boolean isEmpty()           判断集合是否为空
        collection.clear();
        System.out.println(collection.isEmpty());
    }

    private static void containsMethod(Collection<String> collection) {
        // boolean contains(object o)  判断集合中是否存在指定的元素
        System.out.println(collection.contains("a"));
        System.out.println(collection.contains("aaa"));
    }

    private static void clearMethod(Collection<String> collection) {
        // void clear()                清空集合
        // 将集合中所有的元素删除
        collection.clear();
        System.out.println(collection);
    }

    private static void removeIfMethod(Collection<String> collection) {
        // boolean removeIf(Object o)  根据条件进行删除
        // removeIf底层会遍历集合,得到集合中的每一个元素
        // s依次表示集合中的每一个元素
        // 就会把这每一个元素都到lambda表达式中去判断一下
        // 如果返回的是true,则删除
        // 如果返回的是false,则保留不删除
        // boolean test(T t); T表示类型 因为collection中是字符串，所以为String
        collection.removeIf(
                (String s) ->{
                    return s.length()== 3;
                }
        );
        System.out.println(collection);
    }

    private static void removeMethod(Collection<String> collection) {
        // boolean remove(Object o)    从集合中移除指定的元素
        // 删除成功返回true
        // 删除失败返回false
        System.out.println(collection.remove("aaa"));
        System.out.println(collection.remove("ddd"));
        System.out.println(collection);
    }
}
